package com.mlick.a.huweiod;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * <a href="https://fcqian.blog.csdn.net/article/details/128612314">...</a>
 * 单词 倒序 倒叙
 * 题目描述
 * 输入单行英文句子，里面包含英文字母，空格以及,.?三种标点符号，请将句子内每个单词进行倒序，并输出倒序后的语句。
 * <p>
 * 输入描述
 * 输入字符串S，S的长度 1 ≤ N ≤ 100
 * <p>
 * 输出描述
 * 输出倒序后的字符串
 * <p>
 * 备注
 * 标点符号左右的空格 ≥ 0，单词间空格＞0
 * <p>
 * 用例
 * 输入	yM eman si boB.
 * 输出	My name is Bob.
 * 说明	无
 * 输入	woh era uoy ? I ma enif.
 * 输出	how are you ? I am fine.
 * 说明	无
 */
public class H2 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        String str = scanner.nextLine();
        str = str.trim();
        int le = str.length();

        // 获取出所有的分隔字符
        List<Integer> idx = new ArrayList<>();

        idx.add(-1);
        for (int i = 0; i < le; i++) {
            char c = str.charAt(i);
            if (c == ' ' || c == ',' || c == '.' || c == '?') {
                idx.add(i);
            }
        }
        idx.add(le);


        char[] chars = str.toCharArray();

        for (int i = 0; i < idx.size() - 1; i++) {
            int e = idx.get(i + 1) - 1;
            int s = idx.get(i) + 1;

            // 原地移动
            while (s < e) {
                char temp = chars[s];
                chars[s] = chars[e];
                chars[e] = temp;
                s++;
                e--;
            }
        }

        System.out.println(new String(chars));
    }
}
